﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QLKS
{
    public partial class fCapNhatLoaiKhach : Form
    {

        public fCapNhatLoaiKhach()
        {
            InitializeComponent();
            _timer.Tick += new EventHandler(timer_Tick);
            _timer.Interval = 300;
            _timer.Enabled = true;
            _timer.Start();
        }

        Timer _timer = new Timer();//cập nhật trạng thái đăng nhập của người dùng
        private bool _ktdangnhap;//biến tạm kiểm tra trạng thái đăng nhập

        /// <summary>
        /// Kiểm tra người dùng đăng nhập chưa, nếu đăng nhập rồi thì cho phép thao tác, nếu chưa thì không cho phép thao tác
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void fCapNhatLoaiKhach_Load(object sender, EventArgs e)
        {
            if (MainForm.ktdangnhap == true) //người dùng đã đăng nhập thì cho phép thực hiện các truy vấn
            {
                rbthem.Enabled = true;
                rbsua.Enabled = true;
                rbxoa.Enabled = true;
                tbmalk.Enabled = true;
                tbtenlk.Enabled = true;
                lbmalk.Enabled = true;
                lbtenlk.Enabled = true;
                btthem.Enabled = true;
                rbthem.Checked = true;
                btxoa.Hide();
                btsua.Hide();
                _ktdangnhap = MainForm.ktdangnhap;
            }
            else //ngược lại không cho thực hiện các truy vấn
            {
                rbthem.Enabled = false;
                rbsua.Enabled = false;
                rbxoa.Enabled = false;
                tbmalk.Enabled = false;
                tbtenlk.Enabled = false;
                lbmalk.Enabled = false;
                lbtenlk.Enabled = false;
                btthem.Enabled = false;
                btsua.Enabled = false;
                btxoa.Enabled = false;
                _ktdangnhap = MainForm.ktdangnhap;
            }
        }

        /// <summary>
        /// Form thực hiện chức năng thêm khách hàng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void rbthem_CheckedChanged(object sender, EventArgs e)
        {
            label1.Text = "";
            tbmalk.Enabled = true;
            tbmalk.Clear();
            tbtenlk.Enabled = true;
            tbtenlk.Clear();
            btthem.Show();
            btthem.Enabled = true;
            btxoa.Hide();
            btxoa.Enabled = false;
            btsua.Hide();
            btsua.Enabled = false;
        }

        /// <summary>
        /// Form thực hiện chức năng xóa khách hàng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void rbxoa_CheckedChanged(object sender, EventArgs e)
        {
            label1.Text = "";
            tbmalk.Enabled = true;
            tbmalk.Clear();
            tbtenlk.Enabled = false;
            tbtenlk.Clear();
            btthem.Hide();
            btthem.Enabled = false;
            btxoa.Show();
            btxoa.Enabled = true;
            btsua.Hide();
            btsua.Enabled = false;
        }

        /// <summary>
        /// Form thực hiện chức năng sửa khách hàng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void rbsua_CheckedChanged(object sender, EventArgs e)
        {
            label1.Text = "";
            tbmalk.Enabled = true;
            tbmalk.Clear();
            tbtenlk.Enabled = true;
            tbtenlk.Clear();
            btthem.Hide();
            btthem.Enabled = false;
            btxoa.Hide();
            btxoa.Enabled = false;
            btsua.Show();
            btsua.Enabled = true;
        }

        /// <summary>
        /// Kiểm tra textbox mã loại khách và textbox tên loại khách có ký tự hay không
        /// </summary>
        /// <returns></returns>
        private bool KiemTra()
        {
            if (tbmalk.TextLength == 0 || tbtenlk.TextLength == 0)
            {
                return false;
            }
            else
            {
                return true;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tbmalk_TextChanged(object sender, EventArgs e)
        {
            XuLyCapNhatLoaiKhach xllp = new XuLyCapNhatLoaiKhach();
            if (rbthem.Checked == true)
            {
                label1.Text = xllp.KiemTraLoaiKhach_Them(tbmalk.Text);
            }
            else if (rbxoa.Checked == true || rbsua.Checked == true)
            {
                label1.Text = xllp.KiemTraLoaiKhach_XoaSua(tbmalk.Text);
            }
        }

        /// <summary>
        /// Cập nhật thông tin là thêm khách hàng trong CSDL
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btthem_Click(object sender, EventArgs e)
        {
            if (KiemTra() == true)
            {
                XuLyCapNhatLoaiKhach xltlk = new XuLyCapNhatLoaiKhach();
                if (xltlk.ThemLoaiKhach(tbmalk.Text, tbtenlk.Text) == false)
                {
                    MessageBox.Show("Thêm loại khách thất bại");
                }
                else
                {
                    MessageBox.Show("Thêm loại khách thành công");
                }
                fCapNhatLoaiKhach_Load(sender, e);
                rbthem.Checked = true;
            }
            else
            {
                MessageBox.Show("Bạn chưa điền đầy đủ thông tin", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                tbmalk.Focus();
            }
        }

        /// <summary>
        /// Cập nhật thông tin là xóa khách hàng trong CSDL
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btxoa_Click(object sender, EventArgs e)
        {
            if (KiemTra() == true)
            {
                XuLyCapNhatLoaiKhach xlxlk = new XuLyCapNhatLoaiKhach();
                if (xlxlk.XoaLoaiKhach(tbmalk.Text) == false)
                {
                    MessageBox.Show("Xóa loại khách thất bại");
                }
                else
                {
                    MessageBox.Show("Xóa loại khách thành công");
                }
                fCapNhatLoaiKhach_Load(sender, e);
                rbxoa.Checked = true;
            }
            else
            {
                MessageBox.Show("Bạn chưa điền đầy đủ thông tin", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                tbmalk.Focus();
            }
        }

        /// <summary>
        /// Cập nhật thông tin là sửa khách hàng trong CSDL
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btsua_Click(object sender, EventArgs e)
        {
            if (KiemTra() == true)
            {
                XuLyCapNhatLoaiKhach xlslk = new XuLyCapNhatLoaiKhach();
                if (xlslk.SuaLoaiKhach(tbmalk.Text, tbtenlk.Text) == false)
                {
                    MessageBox.Show("Sửa loại khách thất bại");
                }
                else
                {
                    MessageBox.Show("Sửa loại khách thành công");
                }
                fCapNhatLoaiKhach_Load(sender, e);
                rbsua.Checked = true;
            }
            else
            {
                MessageBox.Show("Bạn chưa điền đầy đủ thông tin", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                tbmalk.Focus();
            }
        }

        /// <summary>
        /// Đóng form Cập nhật khách hàng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bthuy_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        /// <summary>
        /// Cập nhật tình trạng đăng nhập của người dùng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer_Tick(object sender, EventArgs e)
        {
            if (MainForm.ktdangnhap != _ktdangnhap)
            {
                fCapNhatLoaiKhach_Load(sender, e);
            }
        }

        /// <summary>
        /// Thực hiện chức năng tương ứng đang chọn
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void fCapNhatLoaiKhach_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter && rbthem.Checked == true)
            {
                btthem.PerformClick();
            }
            else if (e.KeyCode == Keys.Enter && rbxoa.Checked == true)
            {
                btxoa.PerformClick();
            }
            else if (e.KeyCode == Keys.Enter && rbsua.Checked == true)
            {
                btsua.PerformClick();
            }
        }
    }
}
